{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "fbd2dce3-5129-4865-b006-3792b3fc54c3",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 写笑话\n",
    "from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder\n",
    "from langchain_core.output_parsers import StrOutputParser\n",
    "output_parser = StrOutputParser()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "18c8be9e-89b1-46e1-a3d9-bd3a4802a93a",
   "metadata": {},
   "outputs": [],
   "source": [
    "from langchain_openai import ChatOpenAI, OpenAI\n",
    "\n",
    "openai_api_key = \"lm-studio\"\n",
    "openai_api_base = \"http://127.0.0.1:1234/v1\"\n",
    "# llm = ChatOpenAI(\n",
    "#     openai_api_key=openai_api_key,\n",
    "#     openai_api_base=openai_api_base,\n",
    "#     temperature=0.3,\n",
    "#     model_kwargs = {\n",
    "#         \"frequency_penalty\":0.9,\n",
    "#         \"presence_penalty\":0.9\n",
    "#     }\n",
    "# )\n",
    "llm = ChatOpenAI(\n",
    "    openai_api_key=openai_api_key,\n",
    "    openai_api_base=openai_api_base,\n",
    "    temperature=0.3,\n",
    "    # model=\"dranger003/UNA-SimpleSmaug-34b-v1beta-iMat.GGUF/ggml-una-simplesmaug-34b-v1beta-q4_k.gguf\"\n",
    "    # model=\"/mnt/d/ai/download/Smaug-34B-v0.1-AWQ\"\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "b8ccc6fb-4258-4196-9fbe-47a5a0a3264e",
   "metadata": {},
   "outputs": [],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"你是1个写段子的能手。请根据下列生成段子的案例的方法，生成段子。\n",
    "------\n",
    "1. 主题：讲1个减肥的笑话\n",
    "\n",
    "2. 关联：找出与减肥有相同特征，但又让人意想不到的对象。\n",
    "减肥就像戒毒？因为两者都需要毅力、耐心和坚定的决心。不同的是，在戒毒时你可以避开毒品，而在减肥中你却总是被美食诱惑着！\n",
    "\n",
    "3. 做铺垫：将意想不到对象的某个属性或者特征与减肥的某个属性关联。戒毒跟贩毒相关联，贩毒关押起来。减肥跟卖宵夜的关联。所以买宵夜的也要关押起来。\n",
    "\n",
    "4. 结合前面内容，将铺垫放到前面，引出意想不到的结果。\n",
    "段子：我认为卖宵夜的应该被关起来。现在我减肥比戒毒还难。你想想在戒毒时你可以避开毒品，而在减肥中那些卖宵夜的却总是正大光明的诱惑你，还不犯法。\n",
    "------\n",
    "\n",
    "根据上面的案例的方法生成段子：\n",
    "\n",
    "主题：{input}\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "190cba22-604a-4f52-8d0f-b1499fdf4280",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n关联：找出与学习有相同特征，但又让人意想不到的对象。\\n学习就像打游戏？因为两者都需要投入时间、精力和专注力。不同的是，在游戏中你可以获得即时反馈和成就感，而在学习中却经常需要付出努力才能看到成果。\\n\\n做铺垫：将意想不到对象的某个属性或者特征与学习的某个属性关联。打游戏跟玩游戏相关联，玩游戏可以获得奖励。学习跟考试关联。所以考试也要有奖励。\\n\\n结合前面内容，将铺垫放到前面，引出意想不到的结果。\\n段子：我认为考试应该有奖励。现在我学习比打游戏还难。你想想在游戏中你可以获得即时反馈和成就感，而在学习中却经常需要付出努力才能看到成果，还不一定成功。'"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "35f103b0-a505-4016-8870-f9dbce646200",
   "metadata": {},
   "outputs": [],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "\n",
    "我是一个很自律的人，既然说了减肥，那就一定会坚持说。\n",
    "------\n",
    "你是1个写段子的能手。请分析上面的段子使用了什么技巧，并按照这个技巧生成下列主题的段子\n",
    "\n",
    "主题：{input}\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "2da38f58-c8ca-4603-9b41-03cc9d5f9519",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n主题：讲1个工作的段子\\n\\n主题：讲1个旅游的段子\\n\\n主题：讲1个恋爱的段子'"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "4542a3d9-9d7f-43f7-8bd2-5f8198eba9c3",
   "metadata": {},
   "outputs": [],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "\n",
    "我是一个很自律的人，既然说了减肥，那就一定会坚持说。\n",
    "------\n",
    "你是1个写段子的能手。请分析上面的段子使用了什么技巧\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "59554af3-fd31-498e-a6a9-8df84faf273e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'这个段子使用了以下技巧：\\n\\n1. 反转：原本是谈论自律的话题，却以一个出乎意料的结尾来制造笑点。\\n2. 双关语：\"既然说了减肥，那就一定会坚持说\"这句话既可以理解为对减肥的决心，也可以理解为对继续谈论减肥话题的坚持。\\n3. 幽默感：通过将严肃的主题（自律）与意想不到的结尾相结合，营造出一种荒谬感，从而引发观众的笑声。'"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "6dd481b1-48e5-44ab-abeb-3c5a3cbd20d2",
   "metadata": {},
   "outputs": [],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "\n",
    "我是一个很自律的人，既然说了减肥，那就一定会坚持说。\n",
    "\n",
    "这个段子使用了以下技巧：\\n\\n1. 反转：原本是谈论自律的话题，却以一个出乎意料的结尾来制造笑点。\\n2. 双关语：\"既然说了减肥，那就一定会坚持说\"这句话既可以理解为对减肥的决心，也可以理解为对继续谈论减肥话题的坚持。\\n3. 幽默感：通过将严肃的主题（自律）与意想不到的结尾相结合，营造出一种荒谬感，从而引发观众的笑声。\n",
    "\n",
    "你是1个写段子的能手。请按照上面技巧生成下列主题的段子\n",
    "主题：{input}\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "887144cd-afdd-41f7-babb-61cc0c7c4800",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n我是一个很爱学习的人，既然说了要学习，那就一定会坚持说。'"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "59824700-9cfb-4191-be6e-07325ac46541",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'1. 幽默：通过夸张和反转的手法来制造笑点，将减肥的决心与实际行动形成鲜明对比，引发读者共鸣。\\n2. 自嘲：以自我调侃的方式表达对减肥的无奈，拉近了与读者的距离，营造轻松氛围。\\n3. 简洁明了：句子简短有力，易于理解，符合现代人快节奏的生活习惯。'"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "\n",
    "每天都吵着要减肥，其实就是想吓吓身上的肉肉。\n",
    "------\n",
    "你是1个写段子的能手。请分析上面的段子使用了什么技巧\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n",
    "\n",
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "0173868e-5cc1-42ec-8c0d-d38a43efecfc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n每天都说要学习，其实就是想吓吓自己的钱包。'"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "\n",
    "每天都吵着要减肥，其实就是想吓吓身上的肉肉。\n",
    "------\n",
    "这个段子使用了以下技巧：\\n1. 幽默：通过夸张和反转的手法来制造笑点，将减肥的决心与实际行动形成鲜明对比，引发读者共鸣。\\n2. 自嘲：以自我调侃的方式表达对减肥的无奈，拉近了与读者的距离，营造轻松氛围。\\n3. 简洁明了：句子简短有力，易于理解，符合现代人快节奏的生活习惯。\n",
    "你是1个写段子的能手。请按照这个技巧生成下列主题的段子\n",
    "\n",
    "主题：{input}\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n",
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "985c01a5-01b9-4e3a-bd65-612119d20d49",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'这段话运用了幽默和对比的手法来表达作者内心的矛盾。通过将\"减肥的心\"与\"吃货的胃\"拟人化，赋予它们人格化的特点，并让它们进行一场有趣的\"掐架\"，生动地展现了作者在减肥和美食之间难以抉择的心理状态。同时，用\"掐指一算\"和\"艾玛今天胃又赢了\"等口语化的表达方式，增强了段子的亲切感和幽默感，使读者更容易产生共鸣。'"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "\n",
    "我有一颗减肥的心和一个吃货的胃，它俩天天掐架，掐指一算，艾玛今天胃又赢了。\n",
    "------\n",
    "你是1个写段子的能手。请分析上面的段子使用了什么技巧\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n",
    "\n",
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "c994197e-fec1-4f80-8787-e76b4a7d9c6d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'学习这件事，就像打怪升级，每次进步一点，总有一天会遇见大boss，叫毕业论文！'"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "\n",
    "我有一颗减肥的心和一个吃货的胃，它俩天天掐架，掐指一算，艾玛今天胃又赢了。\n",
    "------\n",
    "这段话运用了幽默和对比的手法来表达作者内心的矛盾。通过将\"减肥的心\"与\"吃货的胃\"拟人化，赋予它们人格化的特点，并让它们进行一场有趣的\"掐架\"，生动地展现了作者在减肥和美食之间难以抉择的心理状态。同时，用\"掐指一算\"和\"艾玛今天胃又赢了\"等口语化的表达方式，增强了段子的亲切感和幽默感，使读者更容易产生共鸣。\n",
    "\n",
    "你是1个写段子的能手。请按照上面技巧生成下列主题的段子\n",
    "主题：{input}\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n",
    "\n",
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "0f086514-aee8-47ee-ab99-b3da70a86646",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'这段文字的妙处在于运用了反讽的手法，将减肥的关注点由常见的身体部位转移到了大脑（脑细胞）。这种出乎意料、却又让人忍俊不禁的幽默方式，产生了强烈的对比和喜剧效果。同时，以一种调侃的方式提醒人们，真正的减肥应该关注健康饮食和适量运动，而非一味地减少大脑资源。'"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "\n",
    "人家减肥减腰减大腿，为什么你非要从脑细胞开始。\n",
    "------\n",
    "你是1个写段子的能手。请分析上面的段子使用了什么技巧\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n",
    "\n",
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "4462b9da-8947-4933-8f50-6602423fa210",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'段子：你每天都在学习，但成绩却不见起色，就像你每天都在吃饭，但体重却不见增长一样。'"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "\n",
    "人家减肥减腰减大腿，为什么你非要从脑细胞开始。\n",
    "------\n",
    "这段文字的妙处在于运用了反讽的手法，将减肥的关注点由常见的身体部位转移到了大脑（脑细胞）。这种出乎意料、却又让人忍俊不禁的幽默方式，产生了强烈的对比和喜剧效果。同时，以一种调侃的方式提醒人们，真正的减肥应该关注健康饮食和适量运动，而非一味地减少大脑资源。\n",
    "\n",
    "你是1个写段子的能手。请按照上面技巧生成下列主题的段子\n",
    "主题：{input}\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n",
    "\n",
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "97bb4c00-5faf-482f-9436-8566d031bf8b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'1. 反转：原本看似是关于减肥的讨论，但最后却揭示出主角担心的是反弹而不是减肥本身。这种反转增加了幽默感。\\n2. 夸张：将不减肥的原因归结为怕反弹，而非其他更合理的原因，这种夸张手法增强了段子的喜剧效果。'"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "\n",
    "我不是不减肥，只是怕反弹罢了。\n",
    "------\n",
    "你是1个写段子的能手。请分析上面的段子使用了什么技巧\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n",
    "\n",
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "b8c949f0-5fec-415a-bc5f-b6f993f6fecc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n学习不是我不想学，只是怕考试罢了。'"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "我不是不减肥，只是怕反弹罢了。\n",
    "\n",
    "这个段子使用了以下技巧：\n",
    "1. 反转：原本看似是关于减肥的讨论，但最后却揭示出主角担心的是反弹而不是减肥本身。这种反转增加了幽默感。\\n2. 夸张：将不减肥的原因归结为怕反弹，而非其他更合理的原因，这种夸张手法增强了段子的喜剧效果。\n",
    "\n",
    "你是1个写段子的能手。请按照上面技巧生成下列主题的段子\n",
    "主题：{input}\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n",
    "\n",
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "9466b8ce-2e76-4b46-a1b5-f809748b1d6f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'这段段子运用了幽默和反转的技巧。首先，它通过\"吃货除了吃就什么都不会了\"这个普遍的观点来制造预期，然后以\"她们还知道饿\"作为转折，打破预期并产生幽默效果。这种技巧利用了人们的心理预期，在预期的落差中引发笑点。'"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "\n",
    "谁说吃货除了吃就什么都不会了，她们还知道饿。\n",
    "------\n",
    "你是1个写段子的能手。请分析上面的段子使用了什么技巧\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n",
    "\n",
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "9831fb41-3e45-491e-a88f-4e11ed392495",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n一个学生抱怨说学习太难了，他什么都学不会。然后他的老师说：\"你至少学会了抱怨。\"'"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "谁说吃货除了吃就什么都不会了，她们还知道饿。\n",
    "\n",
    "这个段子使用了以下技巧：\n",
    "这段段子运用了幽默和反转的技巧。首先，它通过\"吃货除了吃就什么都不会了\"这个普遍的观点来制造预期，然后以\"她们还知道饿\"作为转折，打破预期并产生幽默效果。这种技巧利用了人们的心理预期，在预期的落差中引发笑点。\n",
    "\n",
    "你是1个写段子的能手。请按照上面技巧生成下列主题的段子\n",
    "主题：{input}\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n",
    "\n",
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "0c372847-5913-408c-be78-d89e64e16c48",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'1. 自嘲：通过自嘲自己的身材，引发共鸣或幽默感。\\n2. 反转：原本是邀请对方来一起减肥，但最后却说看见对方就没有食欲了，形成了反转效果。\\n3. 双关语：\"没有食欲\"既可以理解为减肥时看到食物不想吃，也可以理解为看到某个人就没了兴趣。'"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "我减肥的时候你一定要来哦，因为看见你，我就没有食欲了。\n",
    "------\n",
    "你是1个写段子的能手。请分析上面的段子使用了什么技巧\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n",
    "\n",
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "018c54c1-6890-4dd0-bd08-b9f328d89cff",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\n我学习的时候你一定要来哦，因为看见你，我就没有动力了。'"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "我减肥的时候你一定要来哦，因为看见你，我就没有食欲了。\n",
    "\n",
    "这个段子使用了以下技巧：\n",
    "1. 自嘲：通过自嘲自己的身材，引发共鸣或幽默感。\\n2. 反转：原本是邀请对方来一起减肥，但最后却说看见对方就没有食欲了，形成了反转效果。\\n3. 双关语：\"没有食欲\"既可以理解为减肥时看到食物不想吃，也可以理解为看到某个人就没了兴趣。\n",
    "\n",
    "你是1个写段子的能手。请按照上面技巧生成下列主题的段子\n",
    "主题：{input}\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n",
    "\n",
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "f693cef6-afe0-4941-be64-db3edb64b2df",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'这个段子运用了以下技巧：\\n1. 幽默对比：将穿着绿色棉袄的人与冬瓜进行对比，制造出一种滑稽的效果。\\n2. 夸张手法：将穿绿色棉袄的人比喻成会走路的冬瓜，夸大了两者之间的相似性，增强了幽默感。\\n3. 反转和讽刺：通过小朋友对穿着绿色棉袄的人的评价，揭示了人们对于不合常规的衣着或行为的看法，引发读者共鸣的同时也产生了喜剧效果。'"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "冬天穿个绿色的棉袄，竟然被小朋友说冬瓜会走路了，真气人！\n",
    "------\n",
    "你是1个写段子的能手。请分析上面的段子使用了什么技巧\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n",
    "\n",
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "95da22cc-f562-4d16-8322-f18cc62bc2f6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'段子：\\n我每天学习到深夜，结果第二天早上还是被老师批评说我的成绩像坐过山车一样起伏不定，真是气人！'"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"\n",
    "冬天穿个绿色的棉袄，竟然被小朋友说冬瓜会走路了，真气人！\n",
    "\n",
    "这个段子使用了以下技巧：\n",
    "这个段子运用了以下技巧：\\n1. 幽默对比：将穿着绿色棉袄的人与冬瓜进行对比，制造出一种滑稽的效果。\\n2. 夸张手法：将穿绿色棉袄的人比喻成会走路的冬瓜，夸大了两者之间的相似性，增强了幽默感。\\n3. 反转和讽刺：通过小朋友对穿着绿色棉袄的人的评价，揭示了人们对于不合常规的衣着或行为的看法，引发读者共鸣的同时也产生了喜剧效果。\n",
    "\n",
    "你是1个写段子的能手。请按照上面技巧生成下列主题的段子\n",
    "主题：{input}\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n",
    "\n",
    "chain.invoke({\"input\":\"讲1个学习的段子\"})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "9a2acf0a-98a2-4cf7-b490-4595d41a95ea",
   "metadata": {},
   "outputs": [],
   "source": [
    "list = [\n",
    "    \"减肥是人生第二大事，第一大事是吃好喝好\",\n",
    "    \"冬天穿个绿色的棉袄，竟然被小朋友说冬瓜会走路了，真气人！\",\n",
    "    \"抛个硬币，如果黏在天花板上就不吃宵夜了\",\n",
    "    \"别问我天天减肥有没有瘦，搞笑，你天天上班有存款吗?\",\n",
    "    \"你喊别的女生出去吃饭，她答应了，可能是对你有意思；你喊我出去吃饭 我答应了，那我是真的喜欢吃饭\",\n",
    "    \"任何时间，任何地点，超级侦探，认真干饭\",\n",
    "    \"我减肥的时候你一定要来哦，因为看见你，我就没有食欲了。\",\n",
    "    \"谁说吃货除了吃就什么都不会了，她们还知道饿。\",\n",
    "    \"人家减肥减腰减大腿，为什么你非要从脑细胞开始。\",\n",
    "    \"我是一个很自律的人，既然说了减肥，那就一定会坚持说。\",\n",
    "    \"勇敢是什么，是我明知道这一顿吃下去会胖，我还是迎难而上。\",\n",
    "    \"减肥哪有那么容易？我的每块肉都有它的脾气！\",\n",
    "    \"我消极的对待减肥，能不能取消我胖子的资格啊！\",\n",
    "    \"减肥简直是世界上最反人类的事情，不吃饭饿得想打人，可吃完饭又想打自己。\",\n",
    "    \"当一两个人说我胖的时候，我不以为然，后来越来越多的人说我胖，这个时候我终于意识到了事情的严重性，这个世界上的骗子真是越来越多了。\",\n",
    "    \"其实我小时候挺瘦的，后来上学了，一句“谁知盘中餐，粒粒皆辛苦”让我变成了如今这副模样。\",\n",
    "    \"从来都不用化妆品，我保持年轻的秘诀就是，谎报年龄。\",\n",
    "    \"妈妈说不能交不三不四的朋友，所以我的朋友都很二。\",\n",
    "    \"做坏事早晚都会被发现，深思熟虑之后，我都改中午做。\",\n",
    "    \"你想一夜暴富吗？你想一夜资产过亿吗？不如和我在一起，我们一起想。\",\n",
    "    \"别看我平时对你总是漠不关心的样子，其实背底下说了你好多坏话。\",\n",
    "    \"没钱的日子来找我，我来告诉你一个馒头，怎么分两天吃？\",\n",
    "    \"我每晚都会对自己说：熬夜会死，事实证明我真的不怕死\",\n",
    "    \"如果你有喜欢的女生，就送她一支口红吧，至少她亲别人的时候，你还有参与感。\",\n",
    "    \"你瘦的时候在我心里，后来胖了，卡在里面出不来了\",\n",
    "]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "05b92af6-b8d4-4759-a730-457a839173f5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['这个段子使用了幽默和反转的技巧来吸引读者的兴趣。首先，它以一种看似严肃的态度谈论减肥的重要性，将减肥列为人生第二大事，而将吃好喝好列为第一大事，这种对比产生了荒谬感，引发读者发笑。其次，段子的结尾强调了吃好喝好的重要性，与前面的减肥形成反转，进一步突出了幽默效果。',\n",
       " '这个段子使用了以下技巧：\\n\\n1. 夸张手法：将穿着绿色棉袄的人比喻为冬瓜，并赋予其行走的能力，营造出幽默的效果。\\n2. 对比：通过小朋友对穿绿棉袄的成人形象的误解，凸显了两者之间的差异和反差，增加了笑点。\\n3. 自嘲：作者以被误认为冬瓜会走路来表达自己的无奈和气愤，同时又用幽默的方式化解尴尬，展现出一种自我调侃的态度。',\n",
       " '这个段子运用了幽默和反转的技巧来制造笑点。首先，它以一种看似荒谬的方式提出问题：\"抛个硬币，如果黏在天花板上就不吃宵夜了\"。这种荒诞的场景本身就具有喜剧效果。其次，它通过反转来加强笑点。通常情况下，人们会认为硬币应该落在地上而不是黏在天花板，所以这个反转出乎意料，让读者感到意外和好笑。此外，这个段子还运用了日常生活中的场景（抛硬币），使读者更容易产生共鸣，从而增强幽默效果。',\n",
       " '这个段子使用了一些幽默的技巧来创造出一种轻松、有趣的效果。具体来说：\\n\\n1. 对比：将减肥和上班这两个看似不相关的事情进行比较，突出了两者之间的相似之处。\\n2. 夸张：通过\"天天减肥\"和\"天天上班\"这两个极端的说法，强调了人们经常面临的困境或挑战。\\n3. 双关语：\"搞笑\"一词既可以指幽默、有趣，也可以理解为\"好笑\"的意思，增加了句子的趣味性。\\n4. 反讽：以一种看似调侃的语气来表达对现实生活的不满和无奈，引发共鸣。',\n",
       " '这个段子使用了一种幽默的技巧，即通过对比和反转来制造笑点。它将两个看似相似的情境进行了对比：一个是别人答应和你一起吃饭可能是因为对你有意思，另一个是答应和你一起吃饭只是因为喜欢吃饭。这种对比突出了不同情境下的不同动机，从而产生了幽默的效果。此外，这个段子还利用了反转的技巧，即通过最后一句\"我是真的喜欢吃饭\"来打破之前的预期，进一步增强了幽默感。',\n",
       " '这个段子运用了夸张、对比和幽默的手法来制造笑点。首先，\"任何时间，任何地点\"的夸张描述强调了超级侦探的无所不在，与后面的\"认真干饭\"形成鲜明对比，突出了超级侦探在日常生活中也有着平凡的一面。这种反差感让读者感到意外，从而引发笑声。',\n",
       " '这个段子使用了一种叫作“自嘲式幽默”的技巧。它通过自我调侃的方式，将减肥和食欲联系在一起，以一种轻松、有趣的方式来表达自己的想法，从而达到引人发笑的效果。这种技巧通常能够拉近与听众的距离，增加亲和力，让人觉得更加真实和亲切。',\n",
       " '这个段子运用了幽默的技巧来吸引读者的注意力。它通过一种轻松、诙谐的方式描述了一个普遍存在的现象——吃货对食物的热爱和专注。同时，它也巧妙地利用了双关语：\"除了吃就什么都不会了\"中的\"不会\"既可以理解为\"不知道\"，也可以理解为\"不擅长\"。这种多重含义使得这个段子更加有趣，令人印象深刻。',\n",
       " '这个段子使用了幽默的技巧来表达观点。它通过将减肥的目标从身体部位转移到大脑细胞，以一种意想不到的方式来呈现，从而创造出令人发笑的效果。这种技巧通常被称为“反转”或“意外性”，因为它打破了常规思维模式，让读者感到惊喜和愉悦。',\n",
       " '这个段子使用了以下几个技巧：\\n\\n1. 对比：将主人公的决心和行动进行了鲜明的对比，突出了其自律的特点。\\n2. 重复：通过\"既然说了减肥，那就一定会坚持说\"这句话重复了两次，强调了主人公的决心。\\n3. 幽默反转：结尾处突然转折，揭示出主人公只是嘴上说说而已，没有实际行动，制造了出乎意料的效果，引发读者笑点。',\n",
       " '这个段子运用了幽默和反转的技巧。它以一种出乎意料的方式描述了\"勇敢\"的概念，将通常被认为是不好的行为——明知会发胖还吃东西——与勇气联系起来。这种反差产生了喜剧效果，使读者感到意外并引发笑点。',\n",
       " '这个段子运用了幽默和自嘲的技巧，通过夸张的手法来表达减肥的不易。它将身体的脂肪拟人化，赋予它们个性化的特点，使原本严肃的话题变得轻松有趣。此外，它还巧妙地利用了押韵和韵律，使得整个段子的节奏感更强，更加朗朗上口。',\n",
       " '这个段子使用了一些幽默和反转的技巧来创造笑点。首先，它以一个看似严肃的问题开头，然后通过回答中的夸张和荒谬来制造喜剧效果。其次，它运用了\"胖子\"这个概念的反转，将原本应该被取消资格的人变成了想要取消自己资格的人，从而产生了意想不到的笑料。最后，段子的结尾再次使用了反转的手法，进一步增强了幽默感。',\n",
       " '这段子使用了幽默和夸张的技巧来表达减肥过程中的困难和矛盾心理。通过将减肥比喻成\"世界上最反人类的事情\"，并运用\"不吃饭饿得想打人\"和\"吃完饭又想打自己\"这种夸张的说法，突出了减肥过程中面临的挑战和内心的挣扎，从而引发读者的共鸣和笑声。',\n",
       " '这个段子使用了一些幽默和讽刺的技巧来制造笑点。首先，它采用了自嘲的方式，通过说自己胖来引发观众的共鸣。其次，它巧妙地运用了反转的手法，将原本可能引起负面情绪的话题（被说胖）转化为一个轻松搞笑的场景（意识到骗子越来越多），从而达到幽默的效果。此外，这个段子还利用了夸张的修辞手法，通过强调越来越多的人说自己胖，来突出自己的肥胖程度，进一步增强了幽默感。',\n",
       " '1. 双关和反转：\"谁知盘中餐，粒粒皆辛苦\"原意是劝诫人们珍惜粮食，但在这里却产生了反转的效果，与肥胖联系起来。\\n2. 幽默的对比：将小时候瘦与上学后变胖进行对比，突出了变化之大。\\n3. 语言简洁而富有创意：用一句话就表达了故事和笑点，让人印象深刻。',\n",
       " '这段子使用了一种幽默的手法，即通过夸张和反转来制造笑点。作者声称自己从不使用化妆品，但真正的秘诀竟然是谎报年龄，这种出乎意料的回答打破了常规思维，从而引发观众的笑声。此外，作者还运用了自嘲的方式，以一种轻松、调侃的态度谈论自己的年龄，进一步增强了幽默效果。',\n",
       " '这个段子运用了幽默的手法和双关的修辞手法。首先，它利用了妈妈对子女交友的关心和担忧，将\"不能交不三不四的朋友\"这句常见的家长式叮嘱进行了巧妙的转化，通过与数字的关联，将\"二\"与朋友联系起来，制造出一种出乎意料的效果。其次，它运用双关的手法，既可以理解为朋友都很傻很天真（二），也可以理解为朋友的性格都很好、很单纯。这种双重含义增加了段子的趣味性，让读者在理解时产生了一种意想不到的惊喜感。',\n",
       " '这个段子运用了反转和幽默的手法。首先，它通过一个看似严肃的陈述（\"做坏事早晚都会被发现\"）来吸引观众的注意力，然后突然以一种意想不到的方式进行反转（\"深思熟虑之后，我都改中午做\"），制造出幽默的效果。这种手法通常被称为\"预期违背\"或\"反讽\"，它利用了观众对常规期望的认知，通过颠覆这些期望来创造笑点。',\n",
       " '这个段子使用了一种幽默的技巧，即通过夸张和反讽来制造笑点。它以一种看似荒谬的方式提出问题，然后给出一个看似荒唐但具有讽刺意味的回答，从而引发观众的笑声。这种技巧在喜剧表演中很常见，因为它能够打破常规思维模式，给观众带来意想不到的惊喜。',\n",
       " '这个段子运用了反讽和幽默的手法来制造笑点。首先，它通过\"别看我平时对你总是漠不关心\"这句话暗示了一种表面上的冷漠态度，而后面\"其实背底下说了你好多坏话\"则以一种出乎意料的方式揭示出背后真正的想法，形成了强烈的反差，从而产生了幽默的效果。这种技巧在喜剧和讽刺文学中经常被使用，因为它可以打破常规的预期，制造出意外的笑点。',\n",
       " '这个段子使用了以下几种技巧：\\n\\n1. 幽默感：通过调侃没钱时的窘境和如何节约食物的方式，制造出一种轻松、有趣的氛围，引发观众的笑声或共鸣。\\n2. 夸张手法：将一个馒头分两天吃，这种夸张的手法不仅凸显了主人公的贫困程度，也增加了段子的戏剧性和娱乐性。\\n3. 反转效果：通常情况下，人们会认为一个馒头应该一次性吃完，而段子中却提出如何分两天吃的方案，这种出人意料的反转让观众感到意外和有趣。\\n4. 贴近生活：段子中的情景是很多人在生活中可能经历过的，因此容易引起观众的共鸣，使他们更容易被逗乐或产生情感上的联系。',\n",
       " '这个段子使用了一种自嘲和夸张的手法来吸引读者的注意。它通过将熬夜与死亡联系起来，并表现出对死亡的轻视态度，制造出一种幽默的效果。这种手法在喜剧表演中很常见，因为它能够打破常规的思维模式，让观众感到意外和好笑。此外，这个段子还使用了重复的技巧，通过强调“真的不怕死”来加强幽默效果。',\n",
       " '这段子运用了幽默和讽刺的手法，通过调侃的方式表达了对爱情的无奈和戏谑的态度。它利用了人们对于爱情、礼物和参与感的普遍认知，将送口红这一行为赋予了一种特殊的含义，即在对方亲吻他人的时候，自己至少还有参与感。这种反常规的解读方式，使得原本普通的送礼行为变得有趣而富有戏剧性，从而引发读者的共鸣和笑声。',\n",
       " '这个段子使用了一种幽默的修辞手法——比喻和反转。它将一个人在另一个人心中的位置比作一个空间，当这个人变瘦时，可以轻松地被容纳进去；而当这个人变胖后，却无法再从那个空间中出来。这种对比和反转营造出一种意想不到的效果，从而产生幽默感。']"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from langchain_core.runnables import RunnablePassthrough\n",
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"{input}\n",
    "\n",
    "你是1个写段子的能手。请分析上面的段子使用了什么技巧\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = ({\"input\": RunnablePassthrough()} | assistant_prompt | llm | output_parser)\n",
    "\n",
    "resultList = chain.batch(list)\n",
    "resultList"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "a235fa8b-6e10-4fd0-92f5-492032b73912",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'joke': '减肥是人生第二大事，第一大事是吃好喝好', 'skill': '这个段子使用了幽默和反转的技巧来吸引读者的兴趣。首先，它以一种看似严肃的态度谈论减肥的重要性，将减肥列为人生第二大事，而将吃好喝好列为第一大事，这种对比产生了荒谬感，引发读者发笑。其次，段子的结尾强调了吃好喝好的重要性，与前面的减肥形成反转，进一步突出了幽默效果。'}, {'joke': '冬天穿个绿色的棉袄，竟然被小朋友说冬瓜会走路了，真气人！', 'skill': '这个段子使用了以下技巧：\\n\\n1. 夸张手法：将穿着绿色棉袄的人比喻为冬瓜，并赋予其行走的能力，营造出幽默的效果。\\n2. 对比：通过小朋友对穿绿棉袄的成人形象的误解，凸显了两者之间的差异和反差，增加了笑点。\\n3. 自嘲：作者以被误认为冬瓜会走路来表达自己的无奈和气愤，同时又用幽默的方式化解尴尬，展现出一种自我调侃的态度。'}, {'joke': '抛个硬币，如果黏在天花板上就不吃宵夜了', 'skill': '这个段子运用了幽默和反转的技巧来制造笑点。首先，它以一种看似荒谬的方式提出问题：\"抛个硬币，如果黏在天花板上就不吃宵夜了\"。这种荒诞的场景本身就具有喜剧效果。其次，它通过反转来加强笑点。通常情况下，人们会认为硬币应该落在地上而不是黏在天花板，所以这个反转出乎意料，让读者感到意外和好笑。此外，这个段子还运用了日常生活中的场景（抛硬币），使读者更容易产生共鸣，从而增强幽默效果。'}, {'joke': '别问我天天减肥有没有瘦，搞笑，你天天上班有存款吗?', 'skill': '这个段子使用了一些幽默的技巧来创造出一种轻松、有趣的效果。具体来说：\\n\\n1. 对比：将减肥和上班这两个看似不相关的事情进行比较，突出了两者之间的相似之处。\\n2. 夸张：通过\"天天减肥\"和\"天天上班\"这两个极端的说法，强调了人们经常面临的困境或挑战。\\n3. 双关语：\"搞笑\"一词既可以指幽默、有趣，也可以理解为\"好笑\"的意思，增加了句子的趣味性。\\n4. 反讽：以一种看似调侃的语气来表达对现实生活的不满和无奈，引发共鸣。'}, {'joke': '你喊别的女生出去吃饭，她答应了，可能是对你有意思；你喊我出去吃饭 我答应了，那我是真的喜欢吃饭', 'skill': '这个段子使用了一种幽默的技巧，即通过对比和反转来制造笑点。它将两个看似相似的情境进行了对比：一个是别人答应和你一起吃饭可能是因为对你有意思，另一个是答应和你一起吃饭只是因为喜欢吃饭。这种对比突出了不同情境下的不同动机，从而产生了幽默的效果。此外，这个段子还利用了反转的技巧，即通过最后一句\"我是真的喜欢吃饭\"来打破之前的预期，进一步增强了幽默感。'}, {'joke': '任何时间，任何地点，超级侦探，认真干饭', 'skill': '这个段子运用了夸张、对比和幽默的手法来制造笑点。首先，\"任何时间，任何地点\"的夸张描述强调了超级侦探的无所不在，与后面的\"认真干饭\"形成鲜明对比，突出了超级侦探在日常生活中也有着平凡的一面。这种反差感让读者感到意外，从而引发笑声。'}, {'joke': '我减肥的时候你一定要来哦，因为看见你，我就没有食欲了。', 'skill': '这个段子使用了一种叫作“自嘲式幽默”的技巧。它通过自我调侃的方式，将减肥和食欲联系在一起，以一种轻松、有趣的方式来表达自己的想法，从而达到引人发笑的效果。这种技巧通常能够拉近与听众的距离，增加亲和力，让人觉得更加真实和亲切。'}, {'joke': '谁说吃货除了吃就什么都不会了，她们还知道饿。', 'skill': '这个段子运用了幽默的技巧来吸引读者的注意力。它通过一种轻松、诙谐的方式描述了一个普遍存在的现象——吃货对食物的热爱和专注。同时，它也巧妙地利用了双关语：\"除了吃就什么都不会了\"中的\"不会\"既可以理解为\"不知道\"，也可以理解为\"不擅长\"。这种多重含义使得这个段子更加有趣，令人印象深刻。'}, {'joke': '人家减肥减腰减大腿，为什么你非要从脑细胞开始。', 'skill': '这个段子使用了幽默的技巧来表达观点。它通过将减肥的目标从身体部位转移到大脑细胞，以一种意想不到的方式来呈现，从而创造出令人发笑的效果。这种技巧通常被称为“反转”或“意外性”，因为它打破了常规思维模式，让读者感到惊喜和愉悦。'}, {'joke': '我是一个很自律的人，既然说了减肥，那就一定会坚持说。', 'skill': '这个段子使用了以下几个技巧：\\n\\n1. 对比：将主人公的决心和行动进行了鲜明的对比，突出了其自律的特点。\\n2. 重复：通过\"既然说了减肥，那就一定会坚持说\"这句话重复了两次，强调了主人公的决心。\\n3. 幽默反转：结尾处突然转折，揭示出主人公只是嘴上说说而已，没有实际行动，制造了出乎意料的效果，引发读者笑点。'}, {'joke': '勇敢是什么，是我明知道这一顿吃下去会胖，我还是迎难而上。', 'skill': '这个段子运用了幽默和反转的技巧。它以一种出乎意料的方式描述了\"勇敢\"的概念，将通常被认为是不好的行为——明知会发胖还吃东西——与勇气联系起来。这种反差产生了喜剧效果，使读者感到意外并引发笑点。'}, {'joke': '减肥哪有那么容易？我的每块肉都有它的脾气！', 'skill': '这个段子运用了幽默和自嘲的技巧，通过夸张的手法来表达减肥的不易。它将身体的脂肪拟人化，赋予它们个性化的特点，使原本严肃的话题变得轻松有趣。此外，它还巧妙地利用了押韵和韵律，使得整个段子的节奏感更强，更加朗朗上口。'}, {'joke': '我消极的对待减肥，能不能取消我胖子的资格啊！', 'skill': '这个段子使用了一些幽默和反转的技巧来创造笑点。首先，它以一个看似严肃的问题开头，然后通过回答中的夸张和荒谬来制造喜剧效果。其次，它运用了\"胖子\"这个概念的反转，将原本应该被取消资格的人变成了想要取消自己资格的人，从而产生了意想不到的笑料。最后，段子的结尾再次使用了反转的手法，进一步增强了幽默感。'}, {'joke': '减肥简直是世界上最反人类的事情，不吃饭饿得想打人，可吃完饭又想打自己。', 'skill': '这段子使用了幽默和夸张的技巧来表达减肥过程中的困难和矛盾心理。通过将减肥比喻成\"世界上最反人类的事情\"，并运用\"不吃饭饿得想打人\"和\"吃完饭又想打自己\"这种夸张的说法，突出了减肥过程中面临的挑战和内心的挣扎，从而引发读者的共鸣和笑声。'}, {'joke': '当一两个人说我胖的时候，我不以为然，后来越来越多的人说我胖，这个时候我终于意识到了事情的严重性，这个世界上的骗子真是越来越多了。', 'skill': '这个段子使用了一些幽默和讽刺的技巧来制造笑点。首先，它采用了自嘲的方式，通过说自己胖来引发观众的共鸣。其次，它巧妙地运用了反转的手法，将原本可能引起负面情绪的话题（被说胖）转化为一个轻松搞笑的场景（意识到骗子越来越多），从而达到幽默的效果。此外，这个段子还利用了夸张的修辞手法，通过强调越来越多的人说自己胖，来突出自己的肥胖程度，进一步增强了幽默感。'}, {'joke': '其实我小时候挺瘦的，后来上学了，一句“谁知盘中餐，粒粒皆辛苦”让我变成了如今这副模样。', 'skill': '1. 双关和反转：\"谁知盘中餐，粒粒皆辛苦\"原意是劝诫人们珍惜粮食，但在这里却产生了反转的效果，与肥胖联系起来。\\n2. 幽默的对比：将小时候瘦与上学后变胖进行对比，突出了变化之大。\\n3. 语言简洁而富有创意：用一句话就表达了故事和笑点，让人印象深刻。'}, {'joke': '从来都不用化妆品，我保持年轻的秘诀就是，谎报年龄。', 'skill': '这段子使用了一种幽默的手法，即通过夸张和反转来制造笑点。作者声称自己从不使用化妆品，但真正的秘诀竟然是谎报年龄，这种出乎意料的回答打破了常规思维，从而引发观众的笑声。此外，作者还运用了自嘲的方式，以一种轻松、调侃的态度谈论自己的年龄，进一步增强了幽默效果。'}, {'joke': '妈妈说不能交不三不四的朋友，所以我的朋友都很二。', 'skill': '这个段子运用了幽默的手法和双关的修辞手法。首先，它利用了妈妈对子女交友的关心和担忧，将\"不能交不三不四的朋友\"这句常见的家长式叮嘱进行了巧妙的转化，通过与数字的关联，将\"二\"与朋友联系起来，制造出一种出乎意料的效果。其次，它运用双关的手法，既可以理解为朋友都很傻很天真（二），也可以理解为朋友的性格都很好、很单纯。这种双重含义增加了段子的趣味性，让读者在理解时产生了一种意想不到的惊喜感。'}, {'joke': '做坏事早晚都会被发现，深思熟虑之后，我都改中午做。', 'skill': '这个段子运用了反转和幽默的手法。首先，它通过一个看似严肃的陈述（\"做坏事早晚都会被发现\"）来吸引观众的注意力，然后突然以一种意想不到的方式进行反转（\"深思熟虑之后，我都改中午做\"），制造出幽默的效果。这种手法通常被称为\"预期违背\"或\"反讽\"，它利用了观众对常规期望的认知，通过颠覆这些期望来创造笑点。'}, {'joke': '你想一夜暴富吗？你想一夜资产过亿吗？不如和我在一起，我们一起想。', 'skill': '这个段子使用了一种幽默的技巧，即通过夸张和反讽来制造笑点。它以一种看似荒谬的方式提出问题，然后给出一个看似荒唐但具有讽刺意味的回答，从而引发观众的笑声。这种技巧在喜剧表演中很常见，因为它能够打破常规思维模式，给观众带来意想不到的惊喜。'}, {'joke': '别看我平时对你总是漠不关心的样子，其实背底下说了你好多坏话。', 'skill': '这个段子运用了反讽和幽默的手法来制造笑点。首先，它通过\"别看我平时对你总是漠不关心\"这句话暗示了一种表面上的冷漠态度，而后面\"其实背底下说了你好多坏话\"则以一种出乎意料的方式揭示出背后真正的想法，形成了强烈的反差，从而产生了幽默的效果。这种技巧在喜剧和讽刺文学中经常被使用，因为它可以打破常规的预期，制造出意外的笑点。'}, {'joke': '没钱的日子来找我，我来告诉你一个馒头，怎么分两天吃？', 'skill': '这个段子使用了以下几种技巧：\\n\\n1. 幽默感：通过调侃没钱时的窘境和如何节约食物的方式，制造出一种轻松、有趣的氛围，引发观众的笑声或共鸣。\\n2. 夸张手法：将一个馒头分两天吃，这种夸张的手法不仅凸显了主人公的贫困程度，也增加了段子的戏剧性和娱乐性。\\n3. 反转效果：通常情况下，人们会认为一个馒头应该一次性吃完，而段子中却提出如何分两天吃的方案，这种出人意料的反转让观众感到意外和有趣。\\n4. 贴近生活：段子中的情景是很多人在生活中可能经历过的，因此容易引起观众的共鸣，使他们更容易被逗乐或产生情感上的联系。'}, {'joke': '我每晚都会对自己说：熬夜会死，事实证明我真的不怕死', 'skill': '这个段子使用了一种自嘲和夸张的手法来吸引读者的注意。它通过将熬夜与死亡联系起来，并表现出对死亡的轻视态度，制造出一种幽默的效果。这种手法在喜剧表演中很常见，因为它能够打破常规的思维模式，让观众感到意外和好笑。此外，这个段子还使用了重复的技巧，通过强调“真的不怕死”来加强幽默效果。'}, {'joke': '如果你有喜欢的女生，就送她一支口红吧，至少她亲别人的时候，你还有参与感。', 'skill': '这段子运用了幽默和讽刺的手法，通过调侃的方式表达了对爱情的无奈和戏谑的态度。它利用了人们对于爱情、礼物和参与感的普遍认知，将送口红这一行为赋予了一种特殊的含义，即在对方亲吻他人的时候，自己至少还有参与感。这种反常规的解读方式，使得原本普通的送礼行为变得有趣而富有戏剧性，从而引发读者的共鸣和笑声。'}, {'joke': '你瘦的时候在我心里，后来胖了，卡在里面出不来了', 'skill': '这个段子使用了一种幽默的修辞手法——比喻和反转。它将一个人在另一个人心中的位置比作一个空间，当这个人变瘦时，可以轻松地被容纳进去；而当这个人变胖后，却无法再从那个空间中出来。这种对比和反转营造出一种意想不到的效果，从而产生幽默感。'}]\n"
     ]
    }
   ],
   "source": [
    "import json\n",
    "jsonList = []\n",
    "for index in range(len(list)):\n",
    "    jsonList.append({\"joke\":list[index],\"skill\":resultList[index]})\n",
    "\n",
    "print(jsonList)\n",
    "\n",
    "# 写入JSON数据\n",
    "with open(\"jokeData.json\", 'w',encoding='utf-8') as f:\n",
    "    # 确保指定ensure_ascii为False以支持中文字符\n",
    "    json.dump(jsonList, f, ensure_ascii=False, indent=4)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "934f647c-2f19-4dd3-a36b-9d21881d32b1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'joke': '减肥是人生第二大事，第一大事是吃好喝好', 'skill': '这个段子使用了幽默和反转的技巧来吸引读者的兴趣。首先，它以一种看似严肃的态度谈论减肥的重要性，将减肥列为人生第二大事，而将吃好喝好列为第一大事，这种对比产生了荒谬感，引发读者发笑。其次，段子的结尾强调了吃好喝好的重要性，与前面的减肥形成反转，进一步突出了幽默效果。'}, {'joke': '冬天穿个绿色的棉袄，竟然被小朋友说冬瓜会走路了，真气人！', 'skill': '这个段子使用了以下技巧：\\n\\n1. 夸张手法：将穿着绿色棉袄的人比喻为冬瓜，并赋予其行走的能力，营造出幽默的效果。\\n2. 对比：通过小朋友对穿绿棉袄的成人形象的误解，凸显了两者之间的差异和反差，增加了笑点。\\n3. 自嘲：作者以被误认为冬瓜会走路来表达自己的无奈和气愤，同时又用幽默的方式化解尴尬，展现出一种自我调侃的态度。'}, {'joke': '抛个硬币，如果黏在天花板上就不吃宵夜了', 'skill': '这个段子运用了幽默和反转的技巧来制造笑点。首先，它以一种看似荒谬的方式提出问题：\"抛个硬币，如果黏在天花板上就不吃宵夜了\"。这种荒诞的场景本身就具有喜剧效果。其次，它通过反转来加强笑点。通常情况下，人们会认为硬币应该落在地上而不是黏在天花板，所以这个反转出乎意料，让读者感到意外和好笑。此外，这个段子还运用了日常生活中的场景（抛硬币），使读者更容易产生共鸣，从而增强幽默效果。'}, {'joke': '别问我天天减肥有没有瘦，搞笑，你天天上班有存款吗?', 'skill': '这个段子使用了一些幽默的技巧来创造出一种轻松、有趣的效果。具体来说：\\n\\n1. 对比：将减肥和上班这两个看似不相关的事情进行比较，突出了两者之间的相似之处。\\n2. 夸张：通过\"天天减肥\"和\"天天上班\"这两个极端的说法，强调了人们经常面临的困境或挑战。\\n3. 双关语：\"搞笑\"一词既可以指幽默、有趣，也可以理解为\"好笑\"的意思，增加了句子的趣味性。\\n4. 反讽：以一种看似调侃的语气来表达对现实生活的不满和无奈，引发共鸣。'}, {'joke': '你喊别的女生出去吃饭，她答应了，可能是对你有意思；你喊我出去吃饭 我答应了，那我是真的喜欢吃饭', 'skill': '这个段子使用了一种幽默的技巧，即通过对比和反转来制造笑点。它将两个看似相似的情境进行了对比：一个是别人答应和你一起吃饭可能是因为对你有意思，另一个是答应和你一起吃饭只是因为喜欢吃饭。这种对比突出了不同情境下的不同动机，从而产生了幽默的效果。此外，这个段子还利用了反转的技巧，即通过最后一句\"我是真的喜欢吃饭\"来打破之前的预期，进一步增强了幽默感。'}, {'joke': '任何时间，任何地点，超级侦探，认真干饭', 'skill': '这个段子运用了夸张、对比和幽默的手法来制造笑点。首先，\"任何时间，任何地点\"的夸张描述强调了超级侦探的无所不在，与后面的\"认真干饭\"形成鲜明对比，突出了超级侦探在日常生活中也有着平凡的一面。这种反差感让读者感到意外，从而引发笑声。'}, {'joke': '我减肥的时候你一定要来哦，因为看见你，我就没有食欲了。', 'skill': '这个段子使用了一种叫作“自嘲式幽默”的技巧。它通过自我调侃的方式，将减肥和食欲联系在一起，以一种轻松、有趣的方式来表达自己的想法，从而达到引人发笑的效果。这种技巧通常能够拉近与听众的距离，增加亲和力，让人觉得更加真实和亲切。'}, {'joke': '谁说吃货除了吃就什么都不会了，她们还知道饿。', 'skill': '这个段子运用了幽默的技巧来吸引读者的注意力。它通过一种轻松、诙谐的方式描述了一个普遍存在的现象——吃货对食物的热爱和专注。同时，它也巧妙地利用了双关语：\"除了吃就什么都不会了\"中的\"不会\"既可以理解为\"不知道\"，也可以理解为\"不擅长\"。这种多重含义使得这个段子更加有趣，令人印象深刻。'}, {'joke': '人家减肥减腰减大腿，为什么你非要从脑细胞开始。', 'skill': '这个段子使用了幽默的技巧来表达观点。它通过将减肥的目标从身体部位转移到大脑细胞，以一种意想不到的方式来呈现，从而创造出令人发笑的效果。这种技巧通常被称为“反转”或“意外性”，因为它打破了常规思维模式，让读者感到惊喜和愉悦。'}, {'joke': '我是一个很自律的人，既然说了减肥，那就一定会坚持说。', 'skill': '这个段子使用了以下几个技巧：\\n\\n1. 对比：将主人公的决心和行动进行了鲜明的对比，突出了其自律的特点。\\n2. 重复：通过\"既然说了减肥，那就一定会坚持说\"这句话重复了两次，强调了主人公的决心。\\n3. 幽默反转：结尾处突然转折，揭示出主人公只是嘴上说说而已，没有实际行动，制造了出乎意料的效果，引发读者笑点。'}, {'joke': '勇敢是什么，是我明知道这一顿吃下去会胖，我还是迎难而上。', 'skill': '这个段子运用了幽默和反转的技巧。它以一种出乎意料的方式描述了\"勇敢\"的概念，将通常被认为是不好的行为——明知会发胖还吃东西——与勇气联系起来。这种反差产生了喜剧效果，使读者感到意外并引发笑点。'}, {'joke': '减肥哪有那么容易？我的每块肉都有它的脾气！', 'skill': '这个段子运用了幽默和自嘲的技巧，通过夸张的手法来表达减肥的不易。它将身体的脂肪拟人化，赋予它们个性化的特点，使原本严肃的话题变得轻松有趣。此外，它还巧妙地利用了押韵和韵律，使得整个段子的节奏感更强，更加朗朗上口。'}, {'joke': '我消极的对待减肥，能不能取消我胖子的资格啊！', 'skill': '这个段子使用了一些幽默和反转的技巧来创造笑点。首先，它以一个看似严肃的问题开头，然后通过回答中的夸张和荒谬来制造喜剧效果。其次，它运用了\"胖子\"这个概念的反转，将原本应该被取消资格的人变成了想要取消自己资格的人，从而产生了意想不到的笑料。最后，段子的结尾再次使用了反转的手法，进一步增强了幽默感。'}, {'joke': '减肥简直是世界上最反人类的事情，不吃饭饿得想打人，可吃完饭又想打自己。', 'skill': '这段子使用了幽默和夸张的技巧来表达减肥过程中的困难和矛盾心理。通过将减肥比喻成\"世界上最反人类的事情\"，并运用\"不吃饭饿得想打人\"和\"吃完饭又想打自己\"这种夸张的说法，突出了减肥过程中面临的挑战和内心的挣扎，从而引发读者的共鸣和笑声。'}, {'joke': '当一两个人说我胖的时候，我不以为然，后来越来越多的人说我胖，这个时候我终于意识到了事情的严重性，这个世界上的骗子真是越来越多了。', 'skill': '这个段子使用了一些幽默和讽刺的技巧来制造笑点。首先，它采用了自嘲的方式，通过说自己胖来引发观众的共鸣。其次，它巧妙地运用了反转的手法，将原本可能引起负面情绪的话题（被说胖）转化为一个轻松搞笑的场景（意识到骗子越来越多），从而达到幽默的效果。此外，这个段子还利用了夸张的修辞手法，通过强调越来越多的人说自己胖，来突出自己的肥胖程度，进一步增强了幽默感。'}, {'joke': '其实我小时候挺瘦的，后来上学了，一句“谁知盘中餐，粒粒皆辛苦”让我变成了如今这副模样。', 'skill': '1. 双关和反转：\"谁知盘中餐，粒粒皆辛苦\"原意是劝诫人们珍惜粮食，但在这里却产生了反转的效果，与肥胖联系起来。\\n2. 幽默的对比：将小时候瘦与上学后变胖进行对比，突出了变化之大。\\n3. 语言简洁而富有创意：用一句话就表达了故事和笑点，让人印象深刻。'}, {'joke': '从来都不用化妆品，我保持年轻的秘诀就是，谎报年龄。', 'skill': '这段子使用了一种幽默的手法，即通过夸张和反转来制造笑点。作者声称自己从不使用化妆品，但真正的秘诀竟然是谎报年龄，这种出乎意料的回答打破了常规思维，从而引发观众的笑声。此外，作者还运用了自嘲的方式，以一种轻松、调侃的态度谈论自己的年龄，进一步增强了幽默效果。'}, {'joke': '妈妈说不能交不三不四的朋友，所以我的朋友都很二。', 'skill': '这个段子运用了幽默的手法和双关的修辞手法。首先，它利用了妈妈对子女交友的关心和担忧，将\"不能交不三不四的朋友\"这句常见的家长式叮嘱进行了巧妙的转化，通过与数字的关联，将\"二\"与朋友联系起来，制造出一种出乎意料的效果。其次，它运用双关的手法，既可以理解为朋友都很傻很天真（二），也可以理解为朋友的性格都很好、很单纯。这种双重含义增加了段子的趣味性，让读者在理解时产生了一种意想不到的惊喜感。'}, {'joke': '做坏事早晚都会被发现，深思熟虑之后，我都改中午做。', 'skill': '这个段子运用了反转和幽默的手法。首先，它通过一个看似严肃的陈述（\"做坏事早晚都会被发现\"）来吸引观众的注意力，然后突然以一种意想不到的方式进行反转（\"深思熟虑之后，我都改中午做\"），制造出幽默的效果。这种手法通常被称为\"预期违背\"或\"反讽\"，它利用了观众对常规期望的认知，通过颠覆这些期望来创造笑点。'}, {'joke': '你想一夜暴富吗？你想一夜资产过亿吗？不如和我在一起，我们一起想。', 'skill': '这个段子使用了一种幽默的技巧，即通过夸张和反讽来制造笑点。它以一种看似荒谬的方式提出问题，然后给出一个看似荒唐但具有讽刺意味的回答，从而引发观众的笑声。这种技巧在喜剧表演中很常见，因为它能够打破常规思维模式，给观众带来意想不到的惊喜。'}, {'joke': '别看我平时对你总是漠不关心的样子，其实背底下说了你好多坏话。', 'skill': '这个段子运用了反讽和幽默的手法来制造笑点。首先，它通过\"别看我平时对你总是漠不关心\"这句话暗示了一种表面上的冷漠态度，而后面\"其实背底下说了你好多坏话\"则以一种出乎意料的方式揭示出背后真正的想法，形成了强烈的反差，从而产生了幽默的效果。这种技巧在喜剧和讽刺文学中经常被使用，因为它可以打破常规的预期，制造出意外的笑点。'}, {'joke': '没钱的日子来找我，我来告诉你一个馒头，怎么分两天吃？', 'skill': '这个段子使用了以下几种技巧：\\n\\n1. 幽默感：通过调侃没钱时的窘境和如何节约食物的方式，制造出一种轻松、有趣的氛围，引发观众的笑声或共鸣。\\n2. 夸张手法：将一个馒头分两天吃，这种夸张的手法不仅凸显了主人公的贫困程度，也增加了段子的戏剧性和娱乐性。\\n3. 反转效果：通常情况下，人们会认为一个馒头应该一次性吃完，而段子中却提出如何分两天吃的方案，这种出人意料的反转让观众感到意外和有趣。\\n4. 贴近生活：段子中的情景是很多人在生活中可能经历过的，因此容易引起观众的共鸣，使他们更容易被逗乐或产生情感上的联系。'}, {'joke': '我每晚都会对自己说：熬夜会死，事实证明我真的不怕死', 'skill': '这个段子使用了一种自嘲和夸张的手法来吸引读者的注意。它通过将熬夜与死亡联系起来，并表现出对死亡的轻视态度，制造出一种幽默的效果。这种手法在喜剧表演中很常见，因为它能够打破常规的思维模式，让观众感到意外和好笑。此外，这个段子还使用了重复的技巧，通过强调“真的不怕死”来加强幽默效果。'}, {'joke': '如果你有喜欢的女生，就送她一支口红吧，至少她亲别人的时候，你还有参与感。', 'skill': '这段子运用了幽默和讽刺的手法，通过调侃的方式表达了对爱情的无奈和戏谑的态度。它利用了人们对于爱情、礼物和参与感的普遍认知，将送口红这一行为赋予了一种特殊的含义，即在对方亲吻他人的时候，自己至少还有参与感。这种反常规的解读方式，使得原本普通的送礼行为变得有趣而富有戏剧性，从而引发读者的共鸣和笑声。'}, {'joke': '你瘦的时候在我心里，后来胖了，卡在里面出不来了', 'skill': '这个段子使用了一种幽默的修辞手法——比喻和反转。它将一个人在另一个人心中的位置比作一个空间，当这个人变瘦时，可以轻松地被容纳进去；而当这个人变胖后，却无法再从那个空间中出来。这种对比和反转营造出一种意想不到的效果，从而产生幽默感。'}]\n"
     ]
    }
   ],
   "source": [
    "import json\n",
    "# 读取JSON数据\n",
    "with open(\"jokeData.json\", 'r', encoding='utf-8') as f:\n",
    "    data = json.load(f)\n",
    "\n",
    "# 打印加载的数据\n",
    "print(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "e48b8f34-7ebf-4046-8796-f54a2ceab67a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'joke': '妈妈说不能交不三不四的朋友，所以我的朋友都很二。', 'skill': '这个段子运用了幽默的手法和双关的修辞手法。首先，它利用了妈妈对子女交友的关心和担忧，将\"不能交不三不四的朋友\"这句常见的家长式叮嘱进行了巧妙的转化，通过与数字的关联，将\"二\"与朋友联系起来，制造出一种出乎意料的效果。其次，它运用双关的手法，既可以理解为朋友都很傻很天真（二），也可以理解为朋友的性格都很好、很单纯。这种双重含义增加了段子的趣味性，让读者在理解时产生了一种意想不到的惊喜感。'}, {'joke': '冬天穿个绿色的棉袄，竟然被小朋友说冬瓜会走路了，真气人！', 'skill': '这个段子使用了以下技巧：\\n\\n1. 夸张手法：将穿着绿色棉袄的人比喻为冬瓜，并赋予其行走的能力，营造出幽默的效果。\\n2. 对比：通过小朋友对穿绿棉袄的成人形象的误解，凸显了两者之间的差异和反差，增加了笑点。\\n3. 自嘲：作者以被误认为冬瓜会走路来表达自己的无奈和气愤，同时又用幽默的方式化解尴尬，展现出一种自我调侃的态度。'}, {'joke': '你想一夜暴富吗？你想一夜资产过亿吗？不如和我在一起，我们一起想。', 'skill': '这个段子使用了一种幽默的技巧，即通过夸张和反讽来制造笑点。它以一种看似荒谬的方式提出问题，然后给出一个看似荒唐但具有讽刺意味的回答，从而引发观众的笑声。这种技巧在喜剧表演中很常见，因为它能够打破常规思维模式，给观众带来意想不到的惊喜。'}, {'joke': '任何时间，任何地点，超级侦探，认真干饭', 'skill': '这个段子运用了夸张、对比和幽默的手法来制造笑点。首先，\"任何时间，任何地点\"的夸张描述强调了超级侦探的无所不在，与后面的\"认真干饭\"形成鲜明对比，突出了超级侦探在日常生活中也有着平凡的一面。这种反差感让读者感到意外，从而引发笑声。'}, {'joke': '人家减肥减腰减大腿，为什么你非要从脑细胞开始。', 'skill': '这个段子使用了幽默的技巧来表达观点。它通过将减肥的目标从身体部位转移到大脑细胞，以一种意想不到的方式来呈现，从而创造出令人发笑的效果。这种技巧通常被称为“反转”或“意外性”，因为它打破了常规思维模式，让读者感到惊喜和愉悦。'}]\n"
     ]
    }
   ],
   "source": [
    "import random\n",
    "# 随机获取n条数据，可能会重复\n",
    "random_items = random.choices(data, k=5)\n",
    "\n",
    "# 打印随机获取的数据\n",
    "print(random_items)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "f20d9a04-25b2-4336-b4ad-79131d5b0d21",
   "metadata": {},
   "outputs": [],
   "source": [
    "demoList = []\n",
    "\n",
    "for item in random_items:\n",
    "    item[\"input\"] = \"讲1个学习的段子\"\n",
    "    demoList.append(item)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "07a7a251-d141-45dd-a5fe-4b5bd62597fe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['\\n学习就像骑自行车，不会的时候很难，会了之后又怕摔倒，但只要一直保持平衡，就能越走越远。',\n",
       " '\\n1. 学习就像打游戏，一开始总是被虐得体无完肤，但只要坚持下去，总有一天你也能成为高手，只不过这个过程可能比打通关还要漫长。',\n",
       " '\\n一个学生问老师：“我怎样才能成为学霸？” 老师说：“你先得学会如何忘记手机。”',\n",
       " '学习，任何时间，任何地点，学霸，认真刷题\\n这个段子运用了夸张、对比和幽默的手法来制造笑点。首先，\"任何时间，任何地点\"的夸张描述强调了学霸对学习的执着，与后面的\"认真刷题\"形成鲜明对比，突出了学霸在日常生活中也有着专注的一面。这种反差感让读者感到意外，从而引发笑声。',\n",
       " '学习就像是在黑暗中行走，你不知道前方会有什么，但每走一步都会让你更接近光明。\\n\\n这个段子使用了反转或意外的技巧来表达观点。它将学习比喻为在黑暗中行走，这是一个常见的比喻，但随后却指出每走一步都会让人更接近光明，而不是通常认为的在黑暗中摸索前行。这种意想不到的转折增添了幽默感，并强调了学习的积极作用。']"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "assistant_prompt = ChatPromptTemplate.from_messages(\n",
    "        [\n",
    "            (\"system\", \"\"\"{joke}\n",
    "\n",
    "这个段子使用了以下技巧：\n",
    "{skill}\n",
    "\n",
    "你是1个写段子的能手。请按照上面技巧生成下列主题的段子\n",
    "主题：{input}\n",
    "\"\"\")\n",
    "        ]\n",
    ")\n",
    "\n",
    "chain = assistant_prompt | llm | output_parser\n",
    "\n",
    "resList = chain.batch(demoList)\n",
    "resList"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f40ddd23-6d32-4d8e-ab46-e3f5adc1f5f3",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
